//
//  BLTableViewController.m
//  ITC_iOS
//
//  Created by iBenz on 2018/8/25.
//  Copyright © 2018年 Benz.L. All rights reserved.
//

#import "BLTableViewController.h"
#import "UIScrollView+RefreshView.h"

@interface BLTableViewController () {
    UITableView *_tableView;
}
@end

@implementation BLTableViewController

- (instancetype)init {
    self = [super init];
    if (self) {
//        _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
//        _tableView.delegate = self;
//        _tableView.dataSource = self;
//        [self.view addSubview:_tableView];
    }
    return self;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    self.tableView.frame = self.view.bounds;
    if (@available(iOS 11.0, *)) {
        _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    }
    else {
        self.automaticallyAdjustsScrollViewInsets = NO;
    }
}

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    [self updateTableViewFrameIfNeeded];
}

- (void)updateTableViewFrameIfNeeded {
    CGRect frame = self.view.bounds;
    if (@available(iOS 11.0, *)) {
        frame.size.height -= self.view.safeAreaInsets.bottom;
    }
    self.tableView.frame = frame;
    //self.tableView.frame = self.view.bounds;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return _style==UITableViewStylePlain?0.001:10;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 0.001;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 0;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"default"];
    return cell;
}

- (void)setRefresh:(PullRefresh)refresh {
    _refresh = refresh;
    WeakRef(self);
    if (refresh&PullRefreshDown) {
        [_tableView setPullDownHandler:^(UIScrollView *scrollView) {
            [weakself pulldownToRefresh];
        }];
    }
    else {
        [_tableView setPullDownHandler:nil];
    }
    if (refresh&PullRefreshUp) {
        [_tableView setPullUpHandler:^(UIScrollView *scrollView) {
            [weakself pullupToRefresh];
        }];
    }
    else {
        [_tableView setPullUpHandler:nil];
    }
}

- (void)pulldownToRefresh {
    
}
- (void)pullupToRefresh {
    
}
- (void)endRefrshWithNomoreData:(BOOL)nomare title:(NSString *)title {
    [_tableView setNomoreTitle:title];
    [_tableView endPulllAndMarkAsNomoreData:nomare];
}
- (void)resetNomoreData {
    [_tableView endPulllAndMarkAsNomoreData:NO];
}
- (void)autoRefresh {
    [_tableView autoPulldown];
}
- (void)setStyle:(UITableViewStyle)style {
    _style = style;
    if (_tableView) {
        UITableView *t = _tableView;
        _tableView = [self tableViewWithStyle:style];
        [self.view insertSubview:_tableView belowSubview:t];
        [t removeFromSuperview];
    }
}
- (UITableView *)tableView {
    if (!_tableView) {
        _tableView = [self tableViewWithStyle:self.style];
        [self.view addSubview:_tableView];
        self.refresh = _refresh;
    }
    return _tableView;
}
- (UITableView *)tableViewWithStyle:(UITableViewStyle)style {
    UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:style];
    tableView.delegate = self;
    tableView.dataSource = self;
    tableView.backgroundColor = UIColor.clearColor;
    tableView.separatorColor = UIColor.clearColor;
    tableView.estimatedSectionFooterHeight = 0;
    tableView.estimatedSectionHeaderHeight = 0;
    return tableView;
}

@end
